package com.yc.book.util;


import com.yc.book.biz.BizException;

import java.util.Collection;
import java.util.Collections;
import java.util.List;
import java.util.Map;

/*
 *工具类
 */
public class Utils {
    /* *
     * 检查参数是否为空
     * 1.空对象
     * 2.空字符
     * 3.空集合
     */
    public static boolean isEmpty(Object value){
        if (value == null || value instanceof String && ((String)value).trim().isEmpty() ||
                value instanceof Collection && ((Collection)value).isEmpty() ||
                value instanceof Map && ((Map)value).isEmpty()) {
            return true;
        }
        return false;
    }

    /*
     *检查参数flag是否为true，如果为true，抛出BizException异常
     *
     */

    public static void check(boolean flag, String msg) {
        if (flag) {
            throw new BizException(msg);
        }
    }


    /*
     *检查参数是否为空，如果为空，抛出BizException异常
     */
    public static void checkEmpty(Object value, String msg) {
        check(isEmpty(value), msg);
    }


    /*
     *检查参数是否为空，如果不为空则返回参数，否则返回字符串，用于动态拼接SQL语句
     */

    public static String appendSqlParameter(Object value, String condition, List<Object> params){
        if (isEmpty(value)) {
            //返回空字符串
            return "";
        }else {
            //不为空，将参数添加到列表中
            params.add(value);
            //返回要拼接的sql语句
            return condition;
        }
    }
}
